Matthias Clasen [Fri, 30 Oct 2015 04:54:37 +0000 (00:54 -0400)]
menu button: Add a style class
Add a .menu style class to differentiate menu buttons from normal
ones.
Matthias Clasen [Fri, 30 Oct 2015 04:51:13 +0000 (00:51 -0400)]
scale button: Add a style class
Add a .scale style class to differentiate scale buttons from normal
ones.
Matthias Clasen [Fri, 30 Oct 2015 04:50:48 +0000 (00:50 -0400)]
link button: Add a style class
Add a .link style class to differentiate link buttons from normal
buttons.
Matthias Clasen [Fri, 30 Oct 2015 04:38:43 +0000 (00:38 -0400)]
HighContrast: Updates for recent changes
This is bit of a grab-bag, it includes fixes for spin buttons,
entries, buttons.
Matthias Clasen [Fri, 30 Oct 2015 04:31:02 +0000 (00:31 -0400)]
Adwaita: Adapt to the button changes
The updates here cover the various button variants.
Matthias Clasen [Fri, 30 Oct 2015 04:29:47 +0000 (00:29 -0400)]
model button: Convert to CSS nodes
Follow the same approach as used for the toggle button family:
Keep the button element name for button-like rendering, and
use a distinct modelbutton name otherwise, and add a subnode
for the indicator with name check or radio.
Matthias Clasen [Fri, 30 Oct 2015 04:27:13 +0000 (00:27 -0400)]
toggle button: Convert to css nodes
Convert GtkToggleButton and its subclasses to CSS nodes.
Keep the button element name for when we want to render
these button-like (but with .toggle, .check and .radio
style classes for differentiation).
When we want to render them with an indicator, use distinct
element names checkbutton and radiobutton, and add a subnode
for the indicator with name check or radio.
Matthias Clasen [Fri, 30 Oct 2015 04:26:04 +0000 (00:26 -0400)]
lockbutton: Revisit element name
Instead of a separate element name, keep button, and just
add a .lock style class, to inherit the button theming.
Matthias Clasen [Fri, 30 Oct 2015 03:17:41 +0000 (23:17 -0400)]
Adwaita: button fixes
Matthias Clasen [Fri, 30 Oct 2015 03:04:47 +0000 (23:04 -0400)]
togglebutton: Add a style class
This lets us differentiate toggle buttons from plain buttons
with button.toggle, without having to redo all the styling.
Matthias Clasen [Fri, 30 Oct 2015 02:55:29 +0000 (22:55 -0400)]
button: Use an element name instead of a style class
Benjamin Otte [Fri, 30 Oct 2015 01:06:01 +0000 (02:06 +0100)]
widget: Queue redraw on gtk_widget_queue_allocate()
Mirror the behavior of gtk_widget_queue_resize() and always queue a
redraw. If we ever want to cause allocates without redraws we can add
gtk_widget_queue_allocate_no_redraw() then.
I had initially assumed gtk_widget_size_allocate() would take care of
queueing redraws, but it does not do that when neither size nor position
change. And that is obviously what's happening after
gtk_widget_queue_allocate().
Fixes buttons sometimes not redrawing (the record button in
widget-factory after locking it, all buttons when switching to the dark
theme).
Matthias Clasen [Thu, 29 Oct 2015 23:21:47 +0000 (19:21 -0400)]
Assistant: Fix page rmoval
We have to remove the page itself from the intermediate box
first, before removing the box from the notebook. Otherwise,
reffing the page to keep it alive is ineffective: the box
gets destroyed, and that destruction recurses over the page.
This fixes the problem in
https://bugzilla.gnome.org/show_bug.cgi?id=756385
Sébastien Granjoux [Mon, 26 Oct 2015 20:52:34 +0000 (21:52 +0100)]
Add a more complex widget in the flipping assistant
This reproduces the problem from bug
https://bugzilla.gnome.org/show_bug.cgi?id=756385
Florian Müllner [Thu, 29 Oct 2015 17:20:27 +0000 (18:20 +0100)]
Adwaita: Update double-border tweak for scrolled windows
Since commit
b6dbfc791f, GtkViewPort uses an element name.
Dominique Leuenberger [Thu, 29 Oct 2015 12:56:18 +0000 (13:56 +0100)]
placessidebar: do not crash if uris is NULL
On Drag'n'Drop actions across system boundaries (VM host to guest), the
happen to be null.
https://bugzilla.gnome.org/show_bug.cgi?id=757298
Benjamin Otte [Thu, 29 Oct 2015 15:03:15 +0000 (16:03 +0100)]
spinbutton: Don't set .entry
Also fix Adwaita to not use .entry anymore
Benjamin Otte [Thu, 29 Oct 2015 14:55:28 +0000 (15:55 +0100)]
searchentry: Fix includes
Matthias Clasen [Thu, 29 Oct 2015 11:47:31 +0000 (07:47 -0400)]
viewport: Add an element name to the css node
This lets us avoid hardcoding the type in CSS.
Matthias Clasen [Thu, 29 Oct 2015 11:43:30 +0000 (07:43 -0400)]
searchbar: Add an element name to the css node
This lets us avoid hardcoding the type in CSS.
Matthias Clasen [Thu, 29 Oct 2015 11:08:15 +0000 (07:08 -0400)]
actionbar: Add an element name to the css node
This lets us avoid hardcoding the type in CSS.
Matthias Clasen [Thu, 29 Oct 2015 11:01:57 +0000 (07:01 -0400)]
statusbar: Add an element name to the css node
This lets us avoid hardcoding the type in CSS.
Matthias Clasen [Thu, 29 Oct 2015 03:58:39 +0000 (23:58 -0400)]
search entry: Add a style class
There should be little need to have separate styling for search
entries, so a separate name would be a bit overkill.
Matthias Clasen [Thu, 29 Oct 2015 03:57:57 +0000 (23:57 -0400)]
lock button: Add an element name
Matthias Clasen [Thu, 29 Oct 2015 03:32:57 +0000 (23:32 -0400)]
entry, spinbutton: Finish css node conversion
This commit creates entry and button subnodes for the buttons
in GtkSpinButton. The nodes are ordered like this for horizontal
spinbutton
+ entry
+ image.left
+ image.right
+ progress
+ button.down
+ button.up
and like this for vertical ones:
spinbutton
+ button.down
+ entry
+ button.up
This arrangement requires cooperation from GtkEntry to place
the entry subnodes correctly, and some small changes in the theme.
This commit also fixes progress rendering in vertical spin buttons.
Matthias Clasen [Thu, 29 Oct 2015 01:55:07 +0000 (21:55 -0400)]
wip: spinbutton
Matthias Clasen [Wed, 28 Oct 2015 20:35:16 +0000 (16:35 -0400)]
spinbutton: Trivial cleanup
Use g_clear_object in a few places.
Benjamin Otte [Thu, 29 Oct 2015 00:03:09 +0000 (01:03 +0100)]
widget: Queue resize on parent on show/hide
When gtk_widget_show() or gtk_widget_hide() is called, don't queue a
resize on the widget itself but on the parent.
The widget itself may already be marked as in need of a resize and
the call would be optimized out and never reach the parent.
The parent size will change though because a child widget just changed
its visibility.
Fixes a bunch of issues with menus appearing black, toolbas not hiding
in widget-factory and also various reftests.
Benjamin Otte [Thu, 8 Oct 2015 11:41:50 +0000 (13:41 +0200)]
container: Don't keep our own variable trying to track need for resize
Insteaad, introduce gtk_widget_needs_allocate() and use that.
Benjamin Otte [Thu, 1 Oct 2015 20:38:31 +0000 (22:38 +0200)]
widget: Make invisible widgets not propagate resizes
Do not queue a resize on the parent if the widget is not visible.
Invisible widgets do not influence the parents size.
Benjamin Otte [Thu, 1 Oct 2015 20:36:34 +0000 (22:36 +0200)]
window: Don't queue resizes when inhibiting resizes
Since the frame clock, the inhibit happens on the GDK level, so this
code is no longer necessary.
Benjamin Otte [Tue, 29 Sep 2015 21:19:07 +0000 (23:19 +0200)]
widget: Make gtk_widget_queue_allocate() not resize
This commit toggles the big switch. We now don't run size_allocate()
from the toplevel up anymore in cases where we don't need to.
Things might be broken in subtle ways as a result of this commit. We'll
have to find them and fix them.
Benjamin Otte [Tue, 29 Sep 2015 19:04:07 +0000 (21:04 +0200)]
widget: Track if a child needs an allocation
This is not used so far.
Benjamin Otte [Mon, 28 Sep 2015 19:57:25 +0000 (21:57 +0200)]
widget: Refactor function
Turn it from a loop into tail-calling itself.
Benjamin Otte [Mon, 28 Sep 2015 19:54:23 +0000 (21:54 +0200)]
widget: Move resize function into gtkwidget.c
There's no sizegroup specific code left in it, but lots of
widget-specifics.
Benjamin Otte [Mon, 28 Sep 2015 19:17:21 +0000 (21:17 +0200)]
sizegroup: Merge function into only caller
Benjamin Otte [Mon, 28 Sep 2015 19:08:57 +0000 (21:08 +0200)]
sizegroup: Simplify widget's size group invalidation
Since we do not queue resizes twice anymore, we can just walk the list
of groups without deduplication.
Benjamin Otte [Mon, 28 Sep 2015 03:48:57 +0000 (05:48 +0200)]
sizegroup: Skip resizes on widgets that have resize queued
Widgets that already have a resize queued don't need to walk the whole
parent chain and queue another resize. It's enough to do it once per
resize.
This also means that sizegroups cannot use the shortcut of just
invalidating the first widget in the group anymore. That widget might
already have a resize queued while others don't.
Benjamin Otte [Mon, 28 Sep 2015 03:42:04 +0000 (05:42 +0200)]
widget: Warn on calls to queue_resize() during size_allocate()
This happens way too much, so it's disabled unless GTK_DEBUG=geometry is
on.
Also, we can't detect it in the call to queue_resize() yet, only during
size_allocate(), so the warning comes after the signal emission.
Benjamin Otte [Mon, 28 Sep 2015 03:23:32 +0000 (05:23 +0200)]
widget: Clear pending resizes after size_allocate()
This catches the cases where widgets call gtk_widget_queue_resize()
in their size_allocate() callback.
Benjamin Otte [Mon, 28 Sep 2015 03:21:06 +0000 (05:21 +0200)]
widget: Warn if size-unqueried widgets get allocated
Widgets should have gtk_widget_get_preferred_width/height() called
on them before gtk_widget_size_allocate() gets called.
Add a check for this.
Benjamin Otte [Mon, 28 Sep 2015 00:19:25 +0000 (02:19 +0200)]
widget: Add a resize_needed flag
... and API to set and unset it.
It is set when gtk_widget_queue_resize() is called.
It is unset when gtk_widget_get_preferred_width/height() is called.
So far it is not used.
Benjamin Otte [Sun, 27 Sep 2015 10:29:05 +0000 (12:29 +0200)]
widget: Add a function that does actual resize
It's just shuffling code around.
Benjamin Otte [Fri, 18 Sep 2015 02:04:21 +0000 (04:04 +0200)]
sizegroup: Merge function into only caller
Both functions were running the same loop. Just running the loop once
seems advantageous.
Benjamin Otte [Wed, 16 Sep 2015 20:56:56 +0000 (22:56 +0200)]
sizegroup: Don't invalidate over resize containers.
Before this commit, a widget tree like this:
Window
AnyContainer (part of SizeGroup1)
GtkClutterEmbed
SomeWidget
when calling gtk_widget_queue_resize(SomeWidget), would invalidate
SizeGroup1, when it should have stopped at the GtkClutterEmbed (which is
a RESIZE_IMMEDIATE child).
Benjamin Otte [Fri, 18 Sep 2015 01:49:09 +0000 (03:49 +0200)]
sizegroup: Refactor function
Get rid of continues in loop. This allows doing more complex things in
future commits.
Benjamin Otte [Fri, 18 Sep 2015 01:41:12 +0000 (03:41 +0200)]
sizegroup: Refactor function
Benjamin Otte [Tue, 15 Sep 2015 20:11:35 +0000 (22:11 +0200)]
sizegroup: Remove special case before loop
The loop actually does the right thing already. There's no need to
complicate things.
Benjamin Otte [Tue, 15 Sep 2015 20:10:26 +0000 (22:10 +0200)]
sizegroup: refactor
The code looks a lot less dangerous if it doesn't look like we're
casting a random widget to a container.
Benjamin Otte [Tue, 15 Sep 2015 20:08:55 +0000 (22:08 +0200)]
sizegroup: Fold function into only caller
Benjamin Otte [Tue, 15 Sep 2015 19:57:49 +0000 (21:57 +0200)]
sizegroup: Move container function into its only caller
Benjamin Otte [Wed, 16 Sep 2015 21:16:44 +0000 (23:16 +0200)]
widget: Use gtk_widget_queue_allocate() when clip changes
There's no need to queue a full resize there.
Benjamin Otte [Mon, 14 Sep 2015 15:56:05 +0000 (17:56 +0200)]
API: widget: Add gtk_widget_queue_allocate()
This is so widgets can queue a rerun of their allocation logic, but
without triggering resizes everywhere.
For now, it just calls gtk_widget_queue_resize().
Benjamin Otte [Mon, 28 Sep 2015 21:33:28 +0000 (23:33 +0200)]
container: Use correct allocation for calling size_allocate()
Benjamin Otte [Mon, 14 Sep 2015 04:11:36 +0000 (06:11 +0200)]
API: widget: Add gtk_widget_get_allocated_size()
See docs for what this is.
Benjamin Otte [Tue, 24 Mar 2015 03:45:38 +0000 (04:45 +0100)]
sizegroup: Remove GtkQueueResizeFlags
They were only used with geometry widgets.
Benjamin Otte [Tue, 24 Mar 2015 03:37:26 +0000 (04:37 +0100)]
widget: Remove _gtk_widget_override_size_request()
The function was only used by the geometry widget.
Benjamin Otte [Tue, 24 Mar 2015 03:33:45 +0000 (04:33 +0100)]
window: Ignore geometry widget
Ignore the geometry widget passed to gtk_window_set_geometry_hints().
Usind the widget itself was a hack that complicates the size request
machinery.
It is also incorrect in that it doesn't respect height-for-width.
Last but not least, it was only used by gnome-terminal and that
application can easily work without it.
Benjamin Otte [Mon, 28 Sep 2015 21:31:04 +0000 (23:31 +0200)]
container: Don't randomly call gtk_widget_set_allocation()
gtk_widget_size_allocate() does that already.
Benjamin Otte [Mon, 21 Sep 2015 16:35:16 +0000 (18:35 +0200)]
entry: Always render like with is_cellrenderer
And remove the API to set that variable.
If you want the entry to not fill its whole allocated area,
gtk_widget_set_valign (entry, GTK_ALIGN_FILL);
will give you the old behavior.
Benjamin Otte [Fri, 9 Oct 2015 13:41:00 +0000 (15:41 +0200)]
icontheme: Clarify GENERIC_FALLBACK flag handling
- Add docs explaining that it doesn't work everywhere
- g_warn_if_fail() in the APIs where it doesn't work
Benjamin Otte [Fri, 9 Oct 2015 13:42:58 +0000 (15:42 +0200)]
iconhelper: Don't pass GENERIC_FALLBACK flag
It's not used when looking up with a GIcon.
Benjamin Otte [Wed, 28 Oct 2015 18:35:23 +0000 (19:35 +0100)]
cssprovider: Have a section when parsing style properties
Signal handlers expect a section to be present, so provide them with
one.
New testcase included.
https://bugzilla.gnome.org/show_bug.cgi?id=757240
Matthias Clasen [Wed, 28 Oct 2015 15:49:00 +0000 (11:49 -0400)]
Revert "tooltip: Use an element name"
This reverts commit
efc8dc63e30d9d53df3cf336673f751fab437d2c.
This change broke tooltip positioning in a way that I don't
fully understand, so take it back for now.
Matthias Clasen [Wed, 28 Oct 2015 15:53:09 +0000 (11:53 -0400)]
Revert "HighContrast: Update tooltip styling"
This reverts commit
93d80380ee93f2d7f7005675900e4da0fbef982c.
Matthias Clasen [Wed, 28 Oct 2015 15:48:52 +0000 (11:48 -0400)]
Revert "Adwaita: Update tooltip theming"
This reverts commit
d974610741349b3f4e4c06abd87c82d99c6858ba.
Matthias Clasen [Wed, 28 Oct 2015 14:07:18 +0000 (10:07 -0400)]
Fix key themes for GtkEntry -> entry
This was pointed out in
https://bugzilla.gnome.org/show_bug.cgi?id=757252
Matthias Clasen [Wed, 28 Oct 2015 14:14:54 +0000 (10:14 -0400)]
shortcuts: Redo the stack switcher theming
Use style classes on the button instead of the stack switcher,
this makes it easier to reuse elsewhere.
Matthias Clasen [Wed, 28 Oct 2015 11:10:30 +0000 (07:10 -0400)]
shortcuts label: Redo the keycap theming
Use a style class directly on the frame. This is easier to reuse.
Matthias Clasen [Wed, 28 Oct 2015 11:09:28 +0000 (07:09 -0400)]
Adwaita: Update shortcuts window theming
Use the newly added element name.
Matthias Clasen [Wed, 28 Oct 2015 10:50:00 +0000 (06:50 -0400)]
shortcuts: Use predefined style classes
Lets use the defines we have.
Matthias Clasen [Wed, 28 Oct 2015 10:45:37 +0000 (06:45 -0400)]
HighContrast: Update calendar theming
Use the newly introduced element name instead of hardcoding the type.
Matthias Clasen [Wed, 28 Oct 2015 10:44:34 +0000 (06:44 -0400)]
Adwaita: Update calendar theming
Use the newly introduced element name instead of hardcoding the type.
Matthias Clasen [Wed, 28 Oct 2015 10:35:33 +0000 (06:35 -0400)]
calendar: Add an element name
This will allow us to drop hardcoded type names in the theme.
Olivier Fourdan [Tue, 27 Oct 2015 17:05:39 +0000 (18:05 +0100)]
wayland: configure clients that resize themselves
Make sure the wayland backend sets a new geometry when the client
resizes itself, otherwise the compositor won't be notified and may
revert to the old size on state changes.
Thanks to Jasper St. Pierre <jstpierre@mecheye.net> who pointed out the
problem in gtk+.
bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=755051
Matthias Clasen [Wed, 28 Oct 2015 04:41:13 +0000 (00:41 -0400)]
inspector: Cosmetic changes to the hierarchy tab
Put the interfaces below GInterface.
Matthias Clasen [Wed, 28 Oct 2015 04:33:14 +0000 (00:33 -0400)]
inspector: Add css node style properties
Add a per-cssnode view of style properties.
Matthias Clasen [Wed, 28 Oct 2015 00:11:00 +0000 (20:11 -0400)]
Drop some no-longer existing headers
Matthias Clasen [Tue, 27 Oct 2015 00:49:28 +0000 (20:49 -0400)]
3.19.1
Matthias Clasen [Tue, 27 Oct 2015 22:56:05 +0000 (18:56 -0400)]
Fix reftests
Multiple reftests were damaged by the element name transition.
Repair them. The region reftests are no longer needed, since
we no longer do regions.
Matthias Clasen [Tue, 27 Oct 2015 19:14:34 +0000 (15:14 -0400)]
HighContrast: Update tooltip styling
Use the newly added element name instead of hardcoding the type.
Matthias Clasen [Tue, 27 Oct 2015 19:12:47 +0000 (15:12 -0400)]
Adwaita: Update tooltip theming
Use the newly introduced element name instead of hardcoding the type.
Matthias Clasen [Tue, 27 Oct 2015 19:10:39 +0000 (15:10 -0400)]
tooltip: Use an element name
This will allow us to drop hardcoded type names in the theme.
William Hua [Tue, 27 Oct 2015 20:19:42 +0000 (16:19 -0400)]
mir: emulate pointer for all touch events
Benjamin Otte [Tue, 27 Oct 2015 19:11:08 +0000 (20:11 +0100)]
cssselector: Print name and any selector first
When printing a "compound selector", make sure the name and universal
selectors are printed at the beginning and class, id, etc. selectors are
printed last.
Matthias Clasen [Tue, 27 Oct 2015 18:37:04 +0000 (14:37 -0400)]
Adwaita: Update GtkAssistant theming
Use the new element name, instead of hardcoding the type.
Matthias Clasen [Tue, 27 Oct 2015 18:31:32 +0000 (14:31 -0400)]
assistant: Use an element name
This will allow us to drop hardcoded type names in the theme.
Matthias Clasen [Tue, 27 Oct 2015 17:26:50 +0000 (13:26 -0400)]
Fix make check
Don't try setting GtkShortcutsShortcut::accelerator to a
random value, it only accepts strings that it can parse.
Matthias Clasen [Tue, 27 Oct 2015 16:53:43 +0000 (12:53 -0400)]
toolitemgroup: Fix the previous change
dispose can be called more than once.
Matthias Clasen [Tue, 27 Oct 2015 15:07:53 +0000 (11:07 -0400)]
tool item group: Don't leak a button
This causes a hickup in the new css node machinery, causing
the default-value test to fail.
Matthias Clasen [Tue, 27 Oct 2015 15:05:00 +0000 (11:05 -0400)]
icon theme: Ensure to propagate an error
If the svg pixbuf loader is not available, we end up with criticals
from gtk_css_image_icon_theme_draw because gtk_icon_info_load_symbolic
returns NULL without setting an error.
Avoid this by propagating the load error.
William Hua [Tue, 27 Oct 2015 14:50:18 +0000 (10:50 -0400)]
mir: warning clean-up
William Hua [Tue, 27 Oct 2015 14:09:34 +0000 (10:09 -0400)]
mir: allow logging touch events
Matthias Clasen [Tue, 27 Oct 2015 12:48:08 +0000 (08:48 -0400)]
shortcuts: Some property hygiene
Bring property notification for some of the new shortcuts widgets
up to the standards of our testsuite.
Lars Uebernickel [Tue, 27 Oct 2015 12:38:14 +0000 (13:38 +0100)]
gdkpixbuf-drawable: reinstate accidentally removed line
Lars Uebernickel [Mon, 26 Oct 2015 09:12:34 +0000 (10:12 +0100)]
gdk_pixbuf_get_from_window: honor device scale
gdk_pixbuf_get_from_window() paints the given window onto a new cairo
surface. Create that new surface with the same device scale as the
window so that the result is not scaled down on hidpi screens.
https://bugzilla.gnome.org/show_bug.cgi?id=757147
Marek Černocký [Tue, 27 Oct 2015 06:38:21 +0000 (07:38 +0100)]
Updated Czech translation
Matthias Clasen [Tue, 27 Oct 2015 03:37:13 +0000 (23:37 -0400)]
inspector: Allow editing css node properties
This reuses the property editor infrastructure from the
property list pages. Good that css nodes are objects.
Matthias Clasen [Tue, 27 Oct 2015 03:38:05 +0000 (23:38 -0400)]
inspector: Support editing interned string properties
Sadly, interned string properties cannot be handled generically
at all - GObject insists on inserting a strcpy in any attempt
to set a string property with generic api, destroying the
internedness of the string.
Therefore, we have to special-case GtkCssNode in the property
editor code :-(
Matthias Clasen [Tue, 27 Oct 2015 03:35:22 +0000 (23:35 -0400)]
Add some api annotations
Nothing is using the /*interned*/ annotations currently,
but if we are doing this, we should be consistent.